The present application relates to computer technology, and more specifically, to selection of a server to execute a task by a client device.
Client-server architecture (client/server) is a network architecture in which clients rely on servers for resources, such as files, devices, and even processing power. Typically, a client computer transfers a task for execution by a server, such as in a case where the task is so resource intensive that the client computer is not able to execute the task. With the advent of cloud computing, reliance on servers, such as mainframes, that execute computationally expensive tasks and provide the results to the client devices, has increased. Accordingly, a measure to determine a quality of the server is an availability of the server. For example, customers, such as hospitals and data centers demand high availability of the servers that perform even routine daily activities. The availability refers to the ability of users to obtain a service or good, access the system, whether to submit new tasks, update or alter existing tasks, or collect the results of previous tasks. Generally, the term downtime is used to refer to periods when a system is unavailable.